package com.star.star.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 艺人
 *
 * @author yangzj
 */
@Getter
@Setter
@Accessors(chain = true)
public class Star implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 艺名
     */
    private String name;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 英文名
     */
    private String englishName;

    /**
     * 头像
     */
    private String avatarUrl;

    /**
     * 性别（0未知 1男 2女）字典：gender
     */
    private Integer gender;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 身高（cm）
     */
    private Integer height;

    /**
     * 体重（kg）
     */
    private Integer weight;

    /**
     * 出生年月
     */
    @JsonFormat(pattern = "yyyy-MM")
    @DateTimeFormat(pattern = "yyyy-MM")
    private Date birthDate;

    /**
     * 血型（字典：blood_type）
     */
    private String bloodType;

    /**
     * 星座（字典：constellation）
     */
    private Integer constellation;

    /**
     * 省
     */
    private Integer province;

    /**
     * 市
     */
    private Integer city;

    /**
     * 自我介绍
     */
    private String introduction;

    /**
     * 是否签约（0未签约 1已签约）
     */
    private Boolean isSigning;

    /**
     * 签约时间
     */
    private LocalDateTime signingTime;

    /**
     * 收藏人数
     */
    private Integer collectCount;

    /**
     * 支持人数
     */
    private Integer supportCount;

    /**
     * 分数
     */
    private BigDecimal score;

    /**
     * 是否启用（0停用 1启用）
     */
    private Boolean enabled;

    /**
     * 创建者
     */
    @TableField(fill = FieldFill.INSERT)
    private Long creator;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updater;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}
